Skip to content

ci: remove Node.js 18 from CI workflow#1295

Closed
MikeMcC399 wants to merge 1 commit intovercel:mainfrom
MikeMcC399:ci/node-remove-18
Closed

ci: remove Node.js 18 from CI workflow#1295
MikeMcC399 wants to merge 1 commit intovercel:mainfrom
MikeMcC399:ci/node-remove-18

Conversation

@MikeMcC399
Copy link
Copy Markdown
Contributor

Situation

The CI workflow .github/workflows/ci.yml currently tests against Node.js 18 and 20.

Referring to the Node.js release schedule Node.js 18 has transitioned to end-of-life:

Node.js Status Date
18.x End-of-Life 2025-04-30

Change

For the CI workflow .github/workflows/ci.yml:

Node.js Change
18.x Remove
20.x Keep

Node.js 22 and 24 are not considered in this PR, since the workflow fails when attempting to use these versions. Any enhancement made to address workflow compatibility would need to be made in a separate PR.

@MikeMcC399
Copy link
Copy Markdown
Contributor Author

@styfle

If you're OK with this PR, then Node 18 jobs would need to be removed from the branch protection rules as being no longer required.

If you want to keep testing against Node.js 18, then please feel free to close this PR without merging.

@styfle
Copy link
Copy Markdown
Member

styfle commented Oct 27, 2025

We should also add 22 to the matrix

@styfle
Copy link
Copy Markdown
Member

styfle commented Oct 27, 2025

Also we usually have engines in package.json but I'm surprised we don't have that. Also no tsconfig to change either so I guess this isn't a breaking change 🤔

@MikeMcC399
Copy link
Copy Markdown
Contributor Author

@styfle

We should also add 22 to the matrix

I would have liked to do that, but it fails in Windows - see https://github.com/MikeMcC399/ncc/actions/runs/18814605371. That's why I suggested in the OP to address Node.js 22 (and 24, which is supposed to transition to LTS tomorrow) in a separate PR.

@MikeMcC399 MikeMcC399 marked this pull request as ready for review October 27, 2025 16:02
@styfle styfle enabled auto-merge (squash) October 27, 2025 17:26
@styfle
Copy link
Copy Markdown
Member

styfle commented Oct 27, 2025

I think its fine to do it in a separate PR but updating the checks is painful since we need to have IT approve and its only for a short window.

So being able to remove 18 required checks and add 22 checks at the same time would be ideal.

@MikeMcC399
Copy link
Copy Markdown
Contributor Author

@styfle

I think its fine to do it in a separate PR but updating the checks is painful since we need to have IT approve and its only for a short window.

So being able to remove 18 required checks and add 22 checks at the same time would be ideal.

I understand the issue, however I don't any experience in this repo about the interactions between dependencies, node-gyp and Python versions, so at this point I don't know if I would be able to get tests to pass on Node.js 22 on Windows.

What I could offer would be to add Node.js 22 with an exclusion for Windows tests.

If you think that would be acceptable, then I would submit a new PR dropping Node.js 18 and adding Node.js 22 for Ubuntu and macOS only and then close this one.

@styfle
Copy link
Copy Markdown
Member

styfle commented Oct 27, 2025

I would prefer to have windows passing, otherwise we can't say that ncc works with node@22

I'm pretty sure the github docs recommend ncc as the default way to create github actions so there is a wide audience.

@MikeMcC399
Copy link
Copy Markdown
Contributor Author

@styfle

I would prefer to have windows passing, otherwise we can't say that ncc works with node@22

I'll see if I can solve the issue with Node.js 22 and Windows, however that may be beyond my skill-set. It may even be beyond what is possible with current dependencies.

I'm pretty sure the github docs recommend ncc as the default way to create github actions so there is a wide audience.

The example repo https://github.com/actions/javascript-action is now recommending rollup rather than ncc.

This was a change made through actions/javascript-action#434, merged in Jan 2025.

I would however expect that many existing JavaScript GitHub Actions are still using ncc, and I would also expect ncc to have continued relevance for some time to come. (https://github.com/cypress-io/github-action is still using it, and that is the reason for my interest in it.)

@MikeMcC399
Copy link
Copy Markdown
Contributor Author

Closing, as dropping Node.js 18 without adding Node.js 22 was not acceptable.

@MikeMcC399 MikeMcC399 closed this Oct 28, 2025
auto-merge was automatically disabled October 28, 2025 05:55

Pull request was closed

@MikeMcC399 MikeMcC399 deleted the ci/node-remove-18 branch October 28, 2025 05:55
@MikeMcC399
Copy link
Copy Markdown
Contributor Author

@styfle

I made slight progress after I found that updating canvas to latest, enabled CI to pass on Node.js 22 with Windows, however it fails on Node 24.

I have come to realize that I really don't have the background, experience and understanding to make changes in this repo with confidence, so I've opened #1297 as a place-holder, and hopefully somebody with related experience will be able to move this forward.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants